<?php
// 版权所有 (C) 2025 尋鯨錄
// 保留所有权利。
// 博客：https://www.xunjinlu.fun/
// 如需二开请保留版权，谢谢。
$img_dir = 'img/';
$images = array();

if (is_dir($img_dir)) {
    if ($dh = opendir($img_dir)) {
        while (($file = readdir($dh)) !== false) {
            if ($file != "." && $file != "..") {
                // 只返回图片文件
                if (preg_match('/\.(jpg|jpeg|png|gif|bmp|webp|tiff|svg)$/i', $file)) {
                    $file_path = $img_dir . $file;
                    $file_size = filesize($file_path);
                    $file_time = filemtime($file_path);
                    
                    $images[] = array(
                        'filename' => $file,
                        'size' => $file_size,
                        'time' => $file_time
                    );
                }
            }
        }
        closedir($dh);
    }
}

// 数字排序函数：从文件名中提取数字部分进行排序
function extractNumber($filename) {
    if (preg_match('/^(\d+)\./', $filename, $matches)) {
        return intval($matches[1]);
    }
    return 0;
}

// 按文件名排序（默认）- 按数字大小排序
usort($images, function($a, $b) {
    $numA = extractNumber($a['filename']);
    $numB = extractNumber($b['filename']);
    return $numA - $numB;
});

// 如果请求了特定的排序方式
$sort = $_GET['sort'] ?? 'name-asc';
switch($sort) {
    case 'name-desc':
        usort($images, function($a, $b) {
            $numA = extractNumber($a['filename']);
            $numB = extractNumber($b['filename']);
            return $numB - $numA; // 倒序
        });
        break;
    case 'size-asc':
        usort($images, function($a, $b) {
            return $a['size'] - $b['size'];
        });
        break;
    case 'size-desc':
        usort($images, function($a, $b) {
            return $b['size'] - $a['size'];
        });
        break;
    case 'time-asc':
        usort($images, function($a, $b) {
            return $a['time'] - $b['time'];
        });
        break;
    case 'time-desc':
        usort($images, function($a, $b) {
            return $b['time'] - $a['time'];
        });
        break;
}

// 返回JSON格式的图片列表
header('Content-Type: application/json');
echo json_encode($images);
?> 